﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace GPSCrowdSource.DataStructures {

  
  /// <summary>
  /// This provides a data source interface that supplies GPS information
  /// </summary>
  public interface IDataSource : IEnumerable<GeoPosition> {

    #region Properties
    
    /// <summary>
    /// Read the next shape from the data source which can be a single point, line or polyline.
    /// </summary>
    /// <returns>null when end of stream is reached.</returns>
    GeoPosition ReadNext();

    /// <summary>
    /// Shutdown/close this stream source.
    /// </summary>
    void Close();

    #endregion

    #region Properties

    /// <summary>
    /// Get the total number of GPS positions
    /// </summary>
    int Count { get; }

    #endregion

    }

  }
